import sys
from PySide6.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout, QFileDialog

class FileDialogExample(QWidget):
    def __init__(self):
        super().__init__()

        # 创建主布局和子部件
        self.layout = QVBoxLayout(self)
        self.open_button = QPushButton("Open File Dialog")

        # 将子部件添加到主布局
        self.layout.addWidget(self.open_button)

        # 连接按钮的点击信号到槽函数
        self.open_button.clicked.connect(self.show_file_dialog)
    
    def show_file_dialog(self):
        # 创建文件对话框
        file_dialog = QFileDialog(self)

        # 设置文件对话框的标题
        file_dialog.setWindowTitle("选择一个文件")

        # 设置文件对话框的打开方式：打开所有的文件
        file_dialog.setFileMode(QFileDialog.AnyFile)
        # 设置打开文件的路径: 窗口，打开方式，所有的文件（文件的过滤器）
        file_name, rest= file_dialog.getOpenFileName(self, "Open File", "", "所有文件(*);;Text Files (*.txt)")
        if file_name:
            print("当前文件的路径:",file_name)
        

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = FileDialogExample()
    window.show()
    sys.exit(app.exec())
